package utfpr.si.vo;

import java.util.ArrayList;

/*
 * Reflete o estado da mochila.
 */
public class Estado {
	ArrayList<Parte> estado = new ArrayList<Parte>();
	
	public Estado(){
		estado = new ArrayList<Parte>();
		estado.add(new Parte(0,0));
	}
	
	public Estado(ArrayList<Parte> estado){
		this.estado = estado;
	}

	public Estado(Estado estado){
		this.estado = estado.getEstado();
	}
		
	/**
	 * Gera um estado com apenas um elemento
	 * @param parte
	 */
	public Estado(Parte parte){
		this.estado.add(parte);
	}
	
	public void addParte(Parte parte){
		estado.add(parte);
	}
	
	public void removeParte(Parte parte){
		estado.remove(parte);
	}
	
	public int getValorTotal(){
		int valorTotal = 0;
		for(Parte parte : estado){
			valorTotal += parte.getValor();
		}
		return valorTotal;
	}
	
	public int getPesoTotal(){
		int pesoTotal = 0;
		for(Parte parte : estado){
			pesoTotal += parte.getPeso();
		}
		return pesoTotal;
	}

	public ArrayList<Parte> getEstado() {
		return estado;
	}

	public void setEstado(ArrayList<Parte> estado) {
		this.estado = estado;
	}
	
	public void print(){
		System.out.print("ESTADO:\n");
		for(Parte parte : this.getEstado()){
			System.out.print(" " + parte.getPeso());
		}
		System.out.println("");
		for(Parte parte : this.getEstado()){
			System.out.print(" " + parte.getValor());
		}
		System.out.println("\n----------");
	}
	
	
}
